package Controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Calendar;
import Modelo.Liga;
import Modelo.Partido;
import Controlador.ControladorVentanaEquipos;
import Vista.VentanaArbitro;
import Vista.VentanaEquipo;
import Vista.VentanaPrincipal;
import Controlador.ControladorVentanaArbitro;

public class ControladorVentanaPrincipal implements ActionListener {
       
        protected Calendar inicioTemporada=Calendar.getInstance();
        protected Calendar fecha = Calendar.getInstance();
        private VentanaPrincipal miVentana;
        private VentanaArbitro miVentanaArbitro;
    	private VentanaEquipo miVentanaEquipo;
        private Partido miPartido;
        
        private Liga miLiga;
       
       
        public ControladorVentanaPrincipal() {
                super();
                // TODO Auto-generated constructor stub
               
                miVentana =VentanaPrincipal.getInstancia();
                miLiga = new Liga();
                miPartido = new Partido();
                miVentana.setLocationRelativeTo(null);
                miVentana.setVisible(true);
                this.miVentana.addActionListener(this);
     
        }

        public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		String fuente = e.getActionCommand();
    		 Object botton= e.getSource();
    		 if(fuente== "Salir"){
					miVentanaEquipo.setVisible(false);
    		 }
					else if (fuente == "Registrar Equipos") {
    			new ControladorVentanaEquipos(miLiga);
    		} else if (fuente == "Registrar Arbitros") {
    			new ControladorVentanaArbitro(miLiga);
    		}  else if (fuente == "Informacion de Jugadores Equipos") {
    			new ControladorConsultarInformacionJugadores(miLiga);
    		}else if (fuente == "Partidos Generados") {
    			if((miLiga.cantArbitros()==0)||(miLiga.cantEquipos()==0))
                {
                        miVentana.mostrarMensaje("Debes Presionar el Boton Generar Partidos");
                }
                else
                {
    			new ControladorGenerarPartido(miLiga);
                }
    		} else if (fuente == "Tabla de Posiciones") {
    			  if(miLiga.cantPartidos()==0)
                  {

                          miVentana.mostrarMensaje("Debes generar los partidos antes de ver la tabla de posición");      
                  }
                  else
                  {
    			new ControladorVentanaTablaPosiciones(miLiga);
                  }
    		}else if (fuente == "Fecha de Partidos"){
    			new ControladorConsultarInformacionJugadores(miLiga);
    		}else
    		if ( botton==miVentana.getBtnPartidos())
        {
                if((miLiga.cantArbitros()==0)||(miLiga.cantEquipos()==0))
                {
                        miVentana.mostrarMensaje("Debes completar la informacion en Arbitros y Equipos"+" y Jugadores para generar la competencia..");
                }
                else
                {
                        if((miLiga.cantEquipos()%2==0)&&(miLiga.cantArbitros()>=(miLiga.cantEquipos()/2)))
                        {
                            miLiga.SetFinTemporada();
                            miLiga.CalcularFechasDeTemporada();
                            miLiga.SetInicioTemporada();
                            miLiga.GenerarTodosLosPartidos();
                   
                        
                        }
                        else
                        {
                                   miVentana.mostrarMensaje("El número de equipos registrados debe ser PAR o El número de arbitros registrados debe ser mayor");
                                        }
                        }
               
        }
    	}
       
      /*  public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
               
                Object fuente = e.getSource();
       
               
                if (fuente ==miVentana.getBtnEquipos())
                {      
                        ControladorVentanaEquipos miControladorEquipo = new ControladorVentanaEquipos(miLiga);
                }
               
                if (fuente ==miVentana.getBtnRegistrarArbitro())
                {
             
                         ControladorVentanaArbitro miControladorArbitro = new ControladorVentanaArbitro(miLiga);
                }
               
                if (fuente ==miVentana.getBtnPartidos())
                {
                        if((miLiga.cantArbitros()==0)||(miLiga.cantEquipos()==0))
                        {
                                miVentana.mostrarMensaje("Debes completar la informacion en Arbitros y Equipos"+" y Jugadores para generar la competencia..");
                        }
                        else
                        {
                                if((miLiga.cantEquipos()%2==0)&&(miLiga.cantArbitros()>=(miLiga.cantEquipos()/2)))
                                {
                            miLiga.GenerarTodosLosPartidos();
                           
                                ControladorGenerarPartido miControladorPatido = new ControladorGenerarPartido (miLiga);
                                }
                                else
                                {
                                           miVentana.mostrarMensaje("El número de equipos registrados debe ser PAR o El número de arbitros registrados debe ser mayor");
                                                }
                                }
                       
                }
               
                if (fuente ==miVentana.getBtnTabla())
                {
                        if(miLiga.cantPartidos()==0)
                        {

                                miVentana.mostrarMensaje("Debes generar los partidos antes de ver la tabla de posición");      
                        }
                        else
                        {
                ControladorVentanaTablaPosiciones miControladorPosiciones = new ControladorVentanaTablaPosiciones(miLiga);
                }
                        }
               
                if (fuente ==miVentana.getBtnConsultar()){
                        ControladorConsultarInformacionJugadores miControladorJugadores = new ControladorConsultarInformacionJugadores(miLiga);
                }
                       
                       
                       

        }*/

}

